Expand description
Rust wrapper for RocksDB.
Examples
use rocksdb::{DB, Options};
// NB: db is automatically closed at end of lifetime
let path = "_path_for_rocksdb_storage";
{
let db = DB::open_default(path).unwrap();
db.put(b"my key", b"my value").unwrap();
match db.get(b"my key") {
Ok(Some(value)) => println!("retrieved value {}", String::from_utf8(value).unwrap()),
Ok(None) => println!("value not found"),
Err(e) => println!("operational problem encountered: {}", e),
}
db.delete(b"my key").unwrap();
}
let _ = DB::destroy(&Options::default(), path);
Opening a database and a single column family with custom options:
use rocksdb::{DB, ColumnFamilyDescriptor, Options};
let path = "_path_for_rocksdb_storage_with_cfs";
let mut cf_opts = Options::default();
cf_opts.set_max_write_buffer_number(16);
let cf = ColumnFamilyDescriptor::new("cf1", cf_opts);
let mut db_opts = Options::default();
db_opts.create_missing_column_families(true);
db_opts.create_if_missing(true);
{
let db = DB::open_cf_descriptors(&db_opts, path, vec![cf]).unwrap();
}
let _ = DB::destroy(&db_opts, path);
Re-exports
pub use crate::compaction_filter::Decision as CompactionDecision;
pub use crate::merge_operator::MergeOperands;
pub use crate::perf::PerfContext;
pub use crate::perf::PerfMetric;
pub use crate::perf::PerfStatsLevel;
Modules
Structs
For configuring block-based file storage.
A specialized opaque type used to represent a column family by the
MultiThreaded
mode. Clone (and Copy) is derived to behave like &ColumnFamily
(this is used for
single-threaded mode). Clone
/Copy
is safe because this lifetime is bound to DB like
iterators/snapshots. On top of it, this is as cheap and small as &ColumnFamily
because
this only has a single pointer-wide field.An opaque type used to represent a column family. Returned from some functions, and used
in others
A descriptor for a RocksDB column family.
Configuration of cuckoo-based storage.
A helper type to implement some common methods for
DBWithThreadMode
and OptimisticTransactionDB
.An iterator over a database or column family, with specifiable
ranges and direction.
Represents a path where sst files can be put into
Wrapper around RocksDB PinnableSlice struct.
An iterator over a database or column family, with specifiable
ranges and direction.
Iterates the batches of writes since a given sequence number.
An Env is an interface used by the rocksdb implementation to access
operating system functionality like the filesystem etc. Callers
may wish to provide a custom Env object when opening a database to
get fine gain control; e.g., to rate limit file system operations.
A simple wrapper round a string, used for errors reported from
ffi calls.
Optionally wait for the memtable flush to be performed.
For configuring external files ingestion.
The metadata that describes a SST file
Actual marker type for the marker trait
ThreadMode
, which holds
a collection of column families wrapped in a RwLock to be mutated
concurrently. The other mode is SingleThreaded
.Database-wide options around performance and behavior.
Used with DBOptions::set_plain_table_factory.
See official wiki for more
information.
Representation of a range of keys starting with given prefix.
Actual marker type for the marker trait
ThreadMode
, which holds
a collection of column families without synchronization primitive, providing
no overhead for the single-threaded column family alternations. The other
mode is MultiThreaded
.A
SliceTransform
is a generic pluggable way of transforming one string
to another. Its primary use-case is in configuring rocksdb
to store prefix blooms by setting prefix_extractor in
ColumnFamilyOptions.A consistent view of the database at the point of creation.
SstFileWriter is used to create sst files that can be added to database later
All keys in files generated by SstFileWriter will have sequence number = 0.
RocksDB Transaction.
RocksDB TransactionDB.
An atomic batch of write operations.
Optionally disable WAL or sync for this write.
Enums
Used by BlockBasedOptions::set_index_type.
Used by BlockBasedOptions::set_data_block_index_type.
RocksDB error kind.
Defines the underlying memtable implementation.
See official wiki for more information.
Constants
The name of the default column family.
Traits
Utility trait to accept both supported references to
ColumnFamily
(&ColumnFamily
and BoundColumnFamily
)Value which can be converted into a C string.
Minimal set of DB-related methods, intended to be generic over
DBWithThreadMode<T>
. Mainly used internallyA range which can be set as iterate bounds on
crate::ReadOptions
.Marker trait to specify single or multi threaded column family alternations for
DBWithThreadMode<T>
Receives the puts and deletes of a write batch.
Type Definitions
Handy type alias to hide actual type difference to reference
ColumnFamily
depending on the multi-threaded-cf
crate feature.A type alias to DB instance type with the single-threaded column family
creations/deletions
A type alias to keep compatibility. See
DBIteratorWithThreadMode
for detailsA type alias to keep compatibility. See
DBRawIteratorWithThreadMode
for detailsA type alias to RocksDB database.
A type alias to RocksDB Optimistic Transaction DB.
A type alias to keep compatibility. See
SnapshotWithThreadMode
for detailsA type alias to keep compatibility. See
WriteBatchWithTransaction
for details